<?php
/**
 * Desc: 控制器基类
 * Auth: Shaoming Lu
 * Date: 2018/4/9
 * Time: 18:10
 */
namespace echophp\core;

use echophp\core\View;
class Controller
{
    protected $_controller;
    protected $_action;
    protected $_view;

    // 构造函数，初始化属性，并实例化对应模型
    public function __construct($controller, $action)
    {
        $this->_controller = $controller;
        $this->_action = $action;
        $this->_view = new View($controller, $action);
    }

    /**
     * 给视图传值
     * @access  public
     * @author  Lu Shaoming<lushao1012@163.com>
     * @param  string $name    变量名
     * @param  string $value   变量值
     */
    public function assign($name, $value)
    {
        $this->_view->assign($name, $value);
    }

    /**
     * 渲染视图
     * @access  public
     * @author  Lu Shaoming<lushao1012@163.com>
     * @param $template 渲染的模板
     * @param $params   传递给模板的参数
     */
    public function render($template, $params = [])
    {
        $this->_view->render($template, $params);
    }

    /**
     * 重定向
     * @access  public
     * @author  Lu Shaoming<lushao1012@163.com>
     * @param  string   $url        地址
     * @param  integer  $statusCode 状态码
     */
    public function redirect($url, $statusCode = 302)
    {
        header("location:".$url, true, $statusCode);
    }
}